﻿    var date = new Date();
    function DoAjaxGetByID(url, id) {
        jQuery.get(url + id + '?fake=' + date.getMilliseconds().toString(), function (data) {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html(data);
            jQuery("#dialog").dialog('open');
        });
    }
    function DoAjaxLoadByID(url, id) {
        jQuery.get(url + id, function(data) {
            //jQuery("#page-main-content").html(data);
        });
    }
    function SetCancel(id) {
        jQuery.get('/ViewOrder/Cancel/' + id + '?fake=' + date.getMilliseconds().toString(), function (data) {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html(data);
            ReloadOrderGrid();
            jQuery("#dialog").dialog('open');
        });
       
    }
    var ExecuteID;
    function SetExecuted(id) {
        ExecuteID = id;
        jQuery("#SetExecutedDialog").dialog('open');
    }
    function SendExecuted() {
        jQuery.post('/ViewOrder/SetExecuted/' + ExecuteID + '?fake=' + date.getMilliseconds().toString(), jQuery('#form-get-executed-date').serialize(), function (data) {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html(data);
            ReloadOrderGrid();
            jQuery("#dialog").dialog('open');
        });
        
    }
    function InitSetExecutedDialog() {
        jQuery('body').append('<div id="SetExecutedDialog" title="Введите дату выполнения заказа">'+
        '<p><span class="ui-icon ui-icon-circle-check" style' +
        '="float:left; margin:0 7px 50px 0;"></span>Дата выполнения (день-месяц-год часы:минуты):<br/>' +
        '<form id="form-get-executed-date"><input type="text" id="ExecutedDate" name="ExecutedDate" value=""/></form></p></div>');
        
        jQuery("#SetExecutedDialog").dialog({
            autoOpen: false,
            bgiframe: true,
            modal: false,
            buttons: {
                Ok: function() {
                    var datereg = new RegExp("^[0-9]{2,2}-[0-9]{2,2}-[0-9]{4,4} [0-9]{2,2}:[0-9]{2,2}$");
                    if (datereg.test(jQuery("#ExecutedDate").val()) || !jQuery("#ExecutedDate").val()) {
                        jQuery(this).dialog('close');
                        SendExecuted();
                    }
                    else alert('Неверный формат даты');
                }
            }
        });
    }
    function DoDelete(id) {
            jQuery.get('/ViewOrder/Delete/' + id + '?fake=' + date.getMilliseconds().toString(), function (data) {
                jQuery("#span-dialog").html('');
                jQuery("#span-dialog").html(data);
                 ReloadOrderGrid();
                jQuery("#dialog").dialog('open');
            });
           
    }

    function InitDialog() {
        jQuery('body').append('<div id="dialog" title="Сообщение"><p><span class="ui-icon ui-icon-circle-check" style' +
        '="float:left; margin:0 7px 50px 0;"></span><span  id="span-dialog"></span></p></div>');
        jQuery("#dialog").dialog({
            autoOpen: false,            
            bgiframe: true,
            modal: false,
            buttons: {
                Ok: function() {
                    jQuery(this).dialog('close');
                }
            }
        });
    }

    function InitOrderGrid(inUrl, inCaption, FilterType, FilterParameter) {
        var pager = jQuery('#pager');
        GridID = 'list';
        jQuery("#list").jqGrid({
            url: inUrl,
            datatype: 'json',
            mtype: 'GET',
            colNames: ['Менеджер','Исполнитель', 'Дата назначения', 'Клиент', 'Описание', 'Цена', 'Выполнен', 'Отменен'],
            colModel: [
      { name: 'Менеджер', index: 'Менеджер.Имя_Настоящее', width: 100, align: 'left', searchoptions: { sopt: ['eq', 'ne', 'cn', 'bw']} },
      { name: 'Исполнитель', index: 'Исполнитель.Имя_Настоящее', width: 100, align: 'left', searchoptions: { sopt: ['eq', 'ne', 'cn', 'bw']} },
      { name: 'Дата_Назначения', index: 'Дата_Назначения.Value', width: 100, align: 'left', searchoptions: { sopt: ['eq', 'ne', 'le', 'ge']} },
      { name: 'Клиент', index: 'Клиент.Имя', width: 100, searchoptions: { sopt: ['eq', 'ne', 'cn', 'bw']} },
      { name: 'Описание', index: 'Описание', sortable: false, width: 100, align: 'left', searchoptions: { sopt: ['cn']} },
      { name: 'Цена', index: 'Цена.Value', width: 70, align: 'center', searchoptions: { sopt: ['eq', 'ne', 'le', 'ge']} },
      { name: 'Выполнен', index: 'Выполнено', sortable: false, formatter: 'checkbox', width: 55, align: 'center', searchoptions: { sopt: ['eq', 'ne']} },
      { name: 'Отменен', index: 'Отменен', sortable: false, formatter: 'checkbox', width: 55, align: 'center', searchoptions: { sopt: ['eq', 'ne']}}],
            pager: pager,
            rowNum: 15,
            rowList: [15, 25, 40, 50],
            sortname: 'ИД_Заказа',
            sortorder: "desc",
            viewrecords: true,
            imgpath: '/Content/images',
            caption: inCaption,
            autowidth: true,
            height: 300,
            toolbar: [true, 'top'],
            subGrid: true,
            subGridModel : [
            { name: ['Услуга', 'Цена', 'Колличество', 'Описание'],
              width : [200,200,200,200],
              params: ['id'] }],
          subGridUrl: '/OrderDetails/IndexSub',
          postData: { FilterType: FilterType, FilterParameter: FilterParameter } 
        });
        jQuery("#list").navGrid('#pager', { refresh: true, add: false, del: false, edit: false, search: true, view: false },
       {}, // default settings for edit
       {}, // default settings for add
       {}, // delete
       {closeOnEscape: true, multipleSearch: true, closeAfterSearch: true }, // search options
       {}
     ).navSeparatorAdd("#pager", { sepclass: "ui-separator" })
     .navButtonAdd('#pager', {
         caption: "Печать таблицы", /*buttonimg:"themes/basic/images/row_add.gif",*/
         onClickButton: function () { PrintTable(); }, position: "last"
     })
     .navSeparatorAdd("#pager", { sepclass: "ui-separator" });
        jQuery("#t_list").height(24); //Set height of toolbar
        jQuery("#t_list").append(jQuery('#toolbar-content'));
        //    //Init Dialog
        InitDialog();
        InitSetExecutedDialog();        
    }

    function Details() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            jQuery("#div-html-loader").load('/ViewOrder/Details/' + rowKey + '?fake=' + date.getMilliseconds().toString() );
        }
        else {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html("Сначала выберите запись");            
            jQuery("#dialog").dialog('open');
        }
    }
    function Edit() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            jQuery("#div-html-loader").load('/ViewOrder/Edit/' + rowKey + '?fake=' + date.getMilliseconds().toString());
        }
        else {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html("Сначала выберите запись");
            jQuery("#dialog").dialog('open');
        }
    }
    function Create() {
        jQuery.get('/ViewOrder/Create', function(data) {
            jQuery("#div-html-loader").html(data);
        });
    }
    function Delete() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            if (confirm('Вы действительно хотите удалить заказ?')) { DoDelete(rowKey); }
        }
        else {
            jQuery("#span-dialog").html("");
            jQuery("#dialog").html("Сначала выберите запись");
            jQuery("#dialog").dialog('open');
        }
    }
    function SetCancelled() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            SetCancel(rowKey);
        }
        else {
            jQuery("#span-dialog").html("");
            jQuery("#span-dialog").html("Сначала выберите запись");
            jQuery("#dialog").dialog('open');
        }
    }
    function SetExecute() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            SetExecuted(rowKey);
        }
        else {
            jQuery("#span-dialog").html("");
            jQuery("#span-dialog").html("Сначала выберите запись");
            jQuery("#dialog").dialog('open');
        }
    }
    function GetReport() {
        var grid = jQuery("#list");
        var rowKey = grid.getGridParam("selrow");
        if (rowKey) {
            var url = '/Report/OrderReport/' + rowKey;
            location.href = url;   
        }
        else {
            jQuery("#span-dialog").html('');
            jQuery("#span-dialog").html("Сначала выберите запись");
            jQuery("#dialog").dialog('open');
        }        
    }
    function PrintTable() {

//        var myObj=jQuery("#list").getGridParam('postData');
//        for (myKey in myObj) {
//            alert("myObj[" + myKey + "] = " + myObj[myKey]);
        //        }
        //alert('download');
        jQuery.download('/Report/PrintOrderGrid', jQuery("#list").getGridParam('postData'));
    }

    jQuery.download = function (url, data, method) {
        //url and data options required
        if (url && data) {
            //data can be string of parameters or array/object
            data = typeof data == 'string' ? data : jQuery.param(data);
            //split params into form inputs
            var inputs = '';
            jQuery.each(data.split('&'), function () {
                var pair = this.split('=');
                inputs += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';
            });
            //send request
            jQuery('<form action="' + url + '" method="' + (method || 'post') + '">' + inputs + '</form>')
		.appendTo('body').submit().remove();
        };
    };

    var GridID;
    function ReloadOrderGrid() {
        var grid = jQuery("#" + GridID);
        grid.trigger("reloadGrid");
    }

    
